package com.guilin.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.guilin.common.annotation.Excel;
import com.guilin.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 校友信息对象 alumni
 * 
 * @author xiaoqi
 * @date 2025-06-07
 */

public class Alumni extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 系统用户ID */
    private Long sysUserId;

    /** 头像 */
    @Excel(name = "头像")
    private String avatarUrl;

    /** 用户名 */
    @Excel(name = "用户名")
    private String username;

    /** 密码 */
    @Excel(name = "密码")
    private String password;

    /** 校友角色 */
    @Excel(name = "校友角色")
    private String alumniRole;

    /** 性别（0男 1女） */
    @Excel(name = "性别", readConverterExp = "0=男,1=女")
    private String sex;

    /** 账号状态(0:正常 1:禁用) */
    @Excel(name = "账号状态(0:正常 1:禁用)")
    private String accountStatus;

    /** 最后登录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastLoginTime;

    /** 姓名 */
    @Excel(name = "姓名")
    private String realName;

    /** 毕业年份 */
    @Excel(name = "毕业年份")
    private String graduationYear;

    /** 毕业学校 */
    @Excel(name = "毕业学校")
    private String graduationSchool;

    /** 专业 */
    @Excel(name = "专业")
    private String major;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 现居住地 */
    @Excel(name = "现居住地")
    private String currentAddress;

    /** 工作单位 */
    @Excel(name = "工作单位")
    private String company;

    /** 职位 */
    @Excel(name = "职位")
    private String position;

    /** 删除标记(0:正常 1:删除) */
    @Excel(name = "删除标记(0:正常 1:删除)")
    private Integer isDeleted;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public Long getSysUserId() {
        return sysUserId;
    }

    public void setSysUserId(Long sysUserId) {
        this.sysUserId = sysUserId;
    }

    public void setAvatarUrl(String avatarUrl) 
    {
        this.avatarUrl = avatarUrl;
    }

    public String getAvatarUrl() 
    {
        return avatarUrl;
    }

    public void setUsername(String username) 
    {
        this.username = username;
    }

    public String getUsername() 
    {
        return username;
    }

    public void setPassword(String password) 
    {
        this.password = password;
    }

    public String getPassword() 
    {
        return password;
    }

    public void setAlumniRole(String alumniRole) 
    {
        this.alumniRole = alumniRole;
    }

    public String getAlumniRole() 
    {
        return alumniRole;
    }

    public void setSex(String sex) 
    {
        this.sex = sex;
    }

    public String getSex() 
    {
        return sex;
    }

    public void setAccountStatus(String accountStatus)
    {
        this.accountStatus = accountStatus;
    }

    public String getAccountStatus()
    {
        return accountStatus;
    }

    public void setLastLoginTime(Date lastLoginTime) 
    {
        this.lastLoginTime = lastLoginTime;
    }

    public Date getLastLoginTime() 
    {
        return lastLoginTime;
    }

    public void setRealName(String realName) 
    {
        this.realName = realName;
    }

    public String getRealName() 
    {
        return realName;
    }

    public void setGraduationYear(String graduationYear)
    {
        this.graduationYear = graduationYear;
    }

    public String getGraduationYear()
    {
        return graduationYear;
    }

    public void setGraduationSchool(String graduationSchool) 
    {
        this.graduationSchool = graduationSchool;
    }

    public String getGraduationSchool() 
    {
        return graduationSchool;
    }

    public void setMajor(String major) 
    {
        this.major = major;
    }

    public String getMajor() 
    {
        return major;
    }

    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }

    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }

    public void setCurrentAddress(String currentAddress) 
    {
        this.currentAddress = currentAddress;
    }

    public String getCurrentAddress() 
    {
        return currentAddress;
    }

    public void setCompany(String company) 
    {
        this.company = company;
    }

    public String getCompany() 
    {
        return company;
    }

    public void setPosition(String position) 
    {
        this.position = position;
    }

    public String getPosition() 
    {
        return position;
    }

    public void setIsDeleted(Integer isDeleted) 
    {
        this.isDeleted = isDeleted;
    }

    public Integer getIsDeleted() 
    {
        return isDeleted;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("sysUserId", getSysUserId())
            .append("avatarUrl", getAvatarUrl())
            .append("username", getUsername())
            .append("password", getPassword())
            .append("alumniRole", getAlumniRole())
            .append("sex", getSex())
            .append("accountStatus", getAccountStatus())
            .append("lastLoginTime", getLastLoginTime())
            .append("realName", getRealName())
            .append("graduationYear", getGraduationYear())
            .append("graduationSchool", getGraduationSchool())
            .append("major", getMajor())
            .append("phone", getPhone())
            .append("email", getEmail())
            .append("currentAddress", getCurrentAddress())
            .append("company", getCompany())
            .append("position", getPosition())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("isDeleted", getIsDeleted())
            .toString();
    }
}
